#define _CRT_SECURE_NO_WARNINGS 1
#include"CloseHash.h"
#include"BucketHash.h"
#include"UnorderedMap.h"
#include"UnorderedSet.h"

int main()
{
	//closehash::TestHT1();
	//closehash::TestHT2();
	//buckethash::TestHT1();
	//buckethash::TestHT2();
	wdl::test_unordered_set();
	wdl::test_unordered_map();

	return 0;
}































//#include<iostream>
//#include<unordered_set>
//#include<unordered_map>
//#include<ctime>
//#include<set>
//#include<vector>
//using namespace std;
//
////int main()
////{
////	unordered_set<int> us;
////	us.insert(3);
////	us.insert(1);
////	us.insert(3);
////	us.insert(2);
////	us.insert(0);
////	us.insert(223322);
////
////	unordered_set<int>::iterator it = us.begin();
////	while (it != us.end())
////	{
////		cout << *it << " ";
////		++it;
////	}
////	cout << endl;
////
////
////	return 0;
////}
//
//int main()
//{
//	size_t N = 1000000;
//	unordered_set<int> us;
//	set<int> s;
//
//	vector<int> v;
//	v.reserve(N);
//	srand((unsigned int)time(nullptr));
//	for (size_t i = 0; i < N; ++i)
//	{
//		v.push_back(rand() + i);
//		//v.push_back(rand());
//		//v.push_back(i);
//	}
//
//	size_t begin1 = clock();
//	for (auto e : v)
//	{
//		s.insert(e);
//	}
//	size_t end1 = clock();
//	cout << "set insert: " << end1 - begin1 << endl;
//
//	size_t begin2 = clock();
//	for (auto e : v)
//	{
//		us.insert(e);
//	}
//	size_t end2 = clock();
//	cout << "unordered_set insert: " << end2 - begin2 << endl;
//
//	size_t begin3 = clock();
//	for (auto e : v)
//	{
//		s.find(e);
//	}
//	size_t end3 = clock();
//	cout << "set find: " << end3 - begin3 << endl;
//
//	size_t begin4 = clock();
//	for (auto e : v)
//	{
//		us.find(e);
//	}
//	size_t end4 = clock();
//	cout << "unordered_set find: " << end4 - begin4 << endl;
//
//	cout << s.size() << endl;
//	cout << us.size() << endl;
//
//	size_t begin5 = clock();
//	for (auto e : v)
//	{
//		s.erase(e);
//	}
//	size_t end5 = clock();
//	cout << "set erase: " << end5 - begin5 << endl;
//
//	size_t begin6 = clock();
//	for (auto e : v)
//	{
//		us.erase(e);
//	}
//	size_t end6 = clock();
//	cout << "set erase: " << end6 - begin6 << endl;
//
//
//
//
//	return 0;
//}